package com.tiger.project.domain;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tiger.common.annotation.Excel;
import com.tiger.common.core.domain.BaseEntity;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;


/**
 * 租金减免对象 contract_sponsor_credit
 *
 * @author standard
 * @date 2022-11-09
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "contract_sponsor_credit对象", description = "租金减免内容")
public class ContractSponsorCredit extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 租金减免id
     */
    private Long id;

    /**
     * 合同发起id
     */
    @Excel(name = "合同发起id")
    @ApiModelProperty(value = "合同发起id")
    private Long contractSponsorId;

    @ApiModelProperty(value = "账期id")
    private Long billId;

    /**
     * 减免原因
     */
    @Excel(name = "减免原因")
    @ApiModelProperty(value = "减免原因")
    private String creditRemark;

    /**
     * 减免金额
     */
    @Excel(name = "减免金额")
    @ApiModelProperty(value = "减免金额")
    private BigDecimal creditAmount;

    /**
     * 收款账期
     */
    @Excel(name = "收款账期")
    @ApiModelProperty(value = "收款账期")
    private Long rentPeriods;

    /**
     * 决策依据id
     */
    @Excel(name = "决策依据id")
    @ApiModelProperty(value = "减免 决策依据id")
    private String decisionId;

    /**
     * OA审核状态 1-未提交，2-审批中，3-审批通过，4-已驳回
     */
    @Excel(name = "OA审核状态 1-未提交，2-审批中，3-审批通过，4-已驳回")
    @ApiModelProperty(value = "OA审核状态 1-未提交，2-审批中，3-审批通过，4-已驳回")
    private Long status;

    @ApiModelProperty(value = "oa审批链接")
    private String OaFile;


    @ApiModelProperty(value = "1-升序  2-降序")
    private Long rank;

    @ApiModelProperty(value = "租金减免 决策依据集合")
    private List<CommonDecision> commonDecisionList = new ArrayList<>();


    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "更新时间")
    private Date updatedAt;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    @ApiModelProperty(value = "创建人")
    private Long createById;

    /**
     * 创建人名称
     */
    @Excel(name = "创建人名称")
    @ApiModelProperty(value = "创建人名称")
    private String createByName;

    /**
     * 更新人
     */
    @Excel(name = "更新人")
    @ApiModelProperty(value = "更新人")
    private Long updateById;

    /**
     * 更新人名称
     */
    @Excel(name = "更新人名称")
    @ApiModelProperty(value = "更新人名称")
    private String updateByName;

    /** 删除标志 1-是，0-否 */
    @Excel(name = "删除标志 1-是，0-否")
    @ApiModelProperty(value = "删除标志 1-是，0-否")
    private Long isDeleted;

    @ApiModelProperty(value = "公司id")
    private Long companyId;

    @ApiModelProperty(value = "合同名称")
    private String name;

    @ApiModelProperty(value = "客户名称  承租人")
    private String lesseeName;

    /**
     * 合同类别  1-房屋租赁合同，2-土地租赁合同
     */
    @Excel(name = "合同类别  1-房屋租赁合同，2-土地租赁合同")
    @ApiModelProperty(value = "合同类别  1-房屋租赁合同，2-土地租赁合同")
    private String contractType;


    @ApiModelProperty(value = "账期集合")
    private ContractBill contractBill;

    @ApiModelProperty(value = "合同编码")
    private String contractSponsorNo;

    @ApiModelProperty(value = "OA的token")
    private String token;

    @ApiModelProperty(value = "OA登录人")
    private String loginName;


}
